home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / Slots.a < prev    next >
Text File  |  1996-05-01  |  23KB  |  1,013 lines

  1. ;
  2. ;    File:        Slots.a
  3. ;
  4. ;    Contains:    Slot Manager Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__SLOTS__') = 'UNDEFINED' THEN
  19. __SLOTS__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.     IF &TYPE('__EVENTS__') = 'UNDEFINED' THEN
  25.     include 'Events.a'
  26.     ENDIF
  27.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  28.     include 'OSUtils.a'
  29.     ENDIF
  30.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  31.     include 'Files.a'
  32.     ENDIF
  33.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  34.  
  35. fDontUse                        EQU        0                    ;old slotmgr put fcardIsChanged here
  36. fCardIsChanged                    EQU        1                    ;card is Changed field in StatusFlags field of sInfoArray
  37. fTempEnabled                    EQU        2                    ;slot is temporarily enabled
  38. fCkForNext                        EQU        0                    ;check for NEXT sRsrc in SRT            (SearchSRT)
  39. fCkReserved                        EQU        1                    ;check reserved field for zero         (ReadPBSize)
  40. fWarmStart                        EQU        2                    ;warm start, else cold start            (PrimaryInit)
  41. fClear                            EQU        3                    ;clear the memory                        (sNewPtr)
  42. fSys                            EQU        4                    ;alloc  on system heap                 (sNewPtr)
  43. fConsecBytes                    EQU        5                    ;calc step value for consecutive bytes (CalcStep)
  44.  
  45. stateNil                        EQU        0                    ;State
  46. stateSDMInit                    EQU        1                    ;:Slot declaration manager Init
  47. statePRAMInit                    EQU        2                    ;:sPRAM record init
  48. statePInit                        EQU        3                    ;:Primary init
  49. stateSInit                        EQU        4                    ;:Secondary init
  50.                                                             ; flags for spParamData 
  51. fall                            EQU        0                    ; bit 0: set=search enabled/disabled sRsrc's 
  52. foneslot                        EQU        1                    ;    1: set=search sRsrc's in given slot only 
  53. fnext                            EQU        2                    ;    2: set=search for next sRsrc 
  54.                                                             ; Misc masks 
  55. catMask                            EQU        $08                    ; sets spCategory field of spTBMask (bit 3) 
  56. cTypeMask                        EQU        $04                    ; sets spCType    field of spTBMask (bit 2) 
  57. drvrSWMask                        EQU        $02                    ; sets spDrvrSW   field of spTBMask (bit 1) 
  58. drvrHWMask                        EQU        $01                    ; sets spDrvrHW      field of spTBMask (bit 0) 
  59. SlotIntQElement            RECORD 0
  60. sqLink                     ds.l    1                ; offset: $0 (0)        ; ptr to next element
  61. sqType                     ds.w    1                ; offset: $4 (4)        ; queue type ID for validity
  62. sqPrio                     ds.w    1                ; offset: $6 (6)        ; priority
  63. sqAddr                     ds.l    1                ; offset: $8 (8)        ; interrupt service routine
  64. sqParm                     ds.l    1                ; offset: $C (12)        ; optional A1 parameter
  65. sizeof                     EQU *                    ; size:   $10 (16)
  66.                         ENDR
  67. ; typedef struct SlotIntQElement *        SQElemPtr
  68.  
  69. SpBlock                    RECORD 0
  70. spResult                 ds.l    1                ; offset: $0 (0)        ; FUNCTION Result
  71. spsPointer                 ds.l    1                ; offset: $4 (4)        ; structure pointer
  72. spSize                     ds.l    1                ; offset: $8 (8)        ; size of structure
  73. spOffsetData             ds.l    1                ; offset: $C (12)        ; offset/data field used by sOffsetData
  74. spIOFileName             ds.l    1                ; offset: $10 (16)        ; ptr to IOFile name for sDisDrvrName
  75. spsExecPBlk                 ds.l    1                ; offset: $14 (20)        ; pointer to sExec parameter block.
  76. spParamData                 ds.l    1                ; offset: $18 (24)        ; misc parameter data (formerly spStackPtr).
  77. spMisc                     ds.l    1                ; offset: $1C (28)        ; misc field for SDM.
  78. spReserved                 ds.l    1                ; offset: $20 (32)        ; reserved for future expansion
  79. spIOReserved             ds.w    1                ; offset: $24 (36)        ; Reserved field of Slot Resource Table
  80. spRefNum                 ds.w    1                ; offset: $26 (38)        ; RefNum
  81. spCategory                 ds.w    1                ; offset: $28 (40)        ; sType: Category
  82. spCType                     ds.w    1                ; offset: $2A (42)        ; Type
  83. spDrvrSW                 ds.w    1                ; offset: $2C (44)        ; DrvrSW
  84. spDrvrHW                 ds.w    1                ; offset: $2E (46)        ; DrvrHW
  85. spTBMask                 ds.b    1                ; offset: $30 (48)        ; type bit mask bits 0..3 mask words 0..3
  86. spSlot                     ds.b    1                ; offset: $31 (49)        ; slot number
  87. spID                     ds.b    1                ; offset: $32 (50)        ; structure ID
  88. spExtDev                 ds.b    1                ; offset: $33 (51)        ; ID of the external device
  89. spHwDev                     ds.b    1                ; offset: $34 (52)        ; Id of the hardware device.
  90. spByteLanes                 ds.b    1                ; offset: $35 (53)        ; bytelanes from card ROM format block
  91. spFlags                     ds.b    1                ; offset: $36 (54)        ; standard flags
  92. spKey                     ds.b    1                ; offset: $37 (55)        ; Internal use only
  93. sizeof                     EQU *                    ; size:   $38 (56)
  94.                         ENDR
  95. ; typedef struct SpBlock *                SpBlockPtr
  96.  
  97. SInfoRecord                RECORD 0
  98. siDirPtr                 ds.l    1                ; offset: $0 (0)        ; Pointer to directory
  99. siInitStatusA             ds.w    1                ; offset: $4 (4)        ; initialization E
  100. siInitStatusV             ds.w    1                ; offset: $6 (6)        ; status returned by vendor init code
  101. siState                     ds.b    1                ; offset: $8 (8)        ; initialization state
  102. siCPUByteLanes             ds.b    1                ; offset: $9 (9)        ; 0=[d0..d7] 1=[d8..d15]
  103. siTopOfROM                 ds.b    1                ; offset: $A (10)        ; Top of ROM= $FssFFFFx: x is TopOfROM
  104. siStatusFlags             ds.b    1                ; offset: $B (11)        ; bit 0 - card is changed
  105. siTOConst                 ds.w    1                ; offset: $C (12)        ; Time Out C for BusErr
  106. siReserved                 ds.b    2                ; offset: $E (14)        ; reserved
  107. siROMAddr                 ds.l    1                ; offset: $10 (16)        ;  addr of top of ROM 
  108. siSlot                     ds.b    1                ; offset: $14 (20)        ;  slot number 
  109. siPadding                 ds.b    3                ; offset: $15 (21)        ;  reserved 
  110. sizeof                     EQU *                    ; size:   $18 (24)
  111.                         ENDR
  112. ; typedef struct SInfoRecord *            SInfoRecPtr
  113.  
  114. SDMRecord                RECORD 0
  115. sdBEVSave                 ds.l    1                ; offset: $0 (0)        ; Save old BusErr vector
  116. sdBusErrProc             ds.l    1                ; offset: $4 (4)        ; Go here to determine if it is a BusErr
  117. sdErrorEntry             ds.l    1                ; offset: $8 (8)        ; Go here if BusErrProc finds real BusErr
  118. sdReserved                 ds.l    1                ; offset: $C (12)        ; Reserved
  119. sizeof                     EQU *                    ; size:   $10 (16)
  120.                         ENDR
  121. FHeaderRec                RECORD 0
  122. fhDirOffset                 ds.l    1                ; offset: $0 (0)        ; offset to directory
  123. fhLength                 ds.l    1                ; offset: $4 (4)        ; length of ROM
  124. fhCRC                     ds.l    1                ; offset: $8 (8)        ; CRC
  125. fhROMRev                 ds.b    1                ; offset: $C (12)        ; revision of ROM
  126. fhFormat                 ds.b    1                ; offset: $D (13)        ; format - 2
  127. fhTstPat                 ds.l    1                ; offset: $E (14)        ; test pattern
  128. fhReserved                 ds.b    1                ; offset: $12 (18)        ; reserved
  129. fhByteLanes                 ds.b    1                ; offset: $13 (19)        ; ByteLanes
  130. sizeof                     EQU *                    ; size:   $14 (20)
  131.                         ENDR
  132. ; typedef struct FHeaderRec *            FHeaderRecPtr
  133.  
  134. OffsetToDir        EQU            FHeaderRec.fhDirOffset-FHeaderRec.sizeof+1    ; offset to dir ptr    <1.8>
  135. ;
  136. ;     Extended Format header block  -  extended declaration ROM format header for super sRsrc directories.    <H2><SM0>
  137. ;
  138. XFHeaderRec                RECORD 0
  139. fhXSuperInit             ds.l    1                ; offset: $0 (0)        ; Offset to SuperInit SExecBlock    <fhFormat,offset>
  140. fhXSDirOffset             ds.l    1                ; offset: $4 (4)        ; Offset to SuperDirectory            <$FE,offset>
  141. fhXEOL                     ds.l    1                ; offset: $8 (8)        ; Psuedo end-of-list                <$FF,nil>
  142. fhXSTstPat                 ds.l    1                ; offset: $C (12)        ; TestPattern
  143. fhXDirOffset             ds.l    1                ; offset: $10 (16)        ; Offset to (minimal) directory
  144. fhXLength                 ds.l    1                ; offset: $14 (20)        ; Length of ROM
  145. fhXCRC                     ds.l    1                ; offset: $18 (24)        ; CRC
  146. fhXROMRev                 ds.b    1                ; offset: $1C (28)        ; Revision of ROM
  147. fhXFormat                 ds.b    1                ; offset: $1D (29)        ; Format-2
  148. fhXTstPat                 ds.l    1                ; offset: $1E (30)        ; TestPattern
  149. fhXReserved                 ds.b    1                ; offset: $22 (34)        ; Reserved
  150. fhXByteLanes             ds.b    1                ; offset: $23 (35)        ; ByteLanes
  151. sizeof                     EQU *                    ; size:   $24 (36)
  152.                         ENDR
  153. ; typedef struct XFHeaderRec *            XFHeaderRecPtr
  154.  
  155. XFHdrExtraSize    Equ            XFHeaderRec.sizeof-FHeaderRec.sizeof        ; (extended - standard) delta
  156. XOffsetToDir    Equ            XFHeaderRec.fhXSDirOffset-XFHeaderRec.sizeof+1    ; offset to super dir ptr
  157. XOffsetToSInit    Equ            XFHeaderRec.fhXSuperInit-XFHeaderRec.sizeof+1    ; offset to super dir ptr
  158. SEBlock                    RECORD 0
  159. seSlot                     ds.b    1                ; offset: $0 (0)        ; Slot number.
  160. sesRsrcId                 ds.b    1                ; offset: $1 (1)        ; sResource Id.
  161. seStatus                 ds.w    1                ; offset: $2 (2)        ; Status of code executed by sExec.
  162. seFlags                     ds.b    1                ; offset: $4 (4)        ; Flags
  163. seFiller0                 ds.b    1                ; offset: $5 (5)        ; Filler, must be SignedByte to align on odd boundry
  164. seFiller1                 ds.b    1                ; offset: $6 (6)        ; Filler
  165. seFiller2                 ds.b    1                ; offset: $7 (7)        ; Filler
  166. seResult                 ds.l    1                ; offset: $8 (8)        ; Result of sLoad.
  167. seIOFileName             ds.l    1                ; offset: $C (12)        ; Pointer to IOFile name.
  168. seDevice                 ds.b    1                ; offset: $10 (16)        ; Which device to read from.
  169. sePartition                 ds.b    1                ; offset: $11 (17)        ; The partition.
  170. seOSType                 ds.b    1                ; offset: $12 (18)        ; Type of OS.
  171. seReserved                 ds.b    1                ; offset: $13 (19)        ; Reserved field.
  172. seRefNum                 ds.b    1                ; offset: $14 (20)        ; RefNum of the driver.
  173. seNumDevices             ds.b    1                ; offset: $15 (21)        ;  Number of devices to load.
  174. seBootState                 ds.b    1                ; offset: $16 (22)        ; State of StartBoot code.
  175. filler                     ds.b    1                ; offset: $17 (23)
  176. sizeof                     EQU *                    ; size:   $18 (24)
  177.                         ENDR
  178. ;   Principle  
  179. ;
  180. ; pascal OSErr SReadByte(SpBlockPtr spBlkPtr)
  181. ;
  182.     IF ¨ GENERATINGCFM THEN
  183.         ; parameters:
  184.         ;    spBlkPtr        => A0
  185.         ; returns:
  186.         ;    OSErr           <= D0
  187.         Macro
  188.         _SReadByte
  189.             moveq               #0,D0
  190.             dc.w                $A06E
  191.         EndM
  192.     ELSE
  193.         IMPORT_CFM_FUNCTION SReadByte
  194.     ENDIF
  195.  
  196. ;
  197. ; pascal OSErr SReadWord(SpBlockPtr spBlkPtr)
  198. ;
  199.     IF ¨ GENERATINGCFM THEN
  200.         ; parameters:
  201.         ;    spBlkPtr        => A0
  202.         ; returns:
  203.         ;    OSErr           <= D0
  204.         Macro
  205.         _SReadWord
  206.             moveq               #1,D0
  207.             dc.w                $A06E
  208.         EndM
  209.     ELSE
  210.         IMPORT_CFM_FUNCTION SReadWord
  211.     ENDIF
  212.  
  213. ;
  214. ; pascal OSErr SReadLong(SpBlockPtr spBlkPtr)
  215. ;
  216.     IF ¨ GENERATINGCFM THEN
  217.         ; parameters:
  218.         ;    spBlkPtr        => A0
  219.         ; returns:
  220.         ;    OSErr           <= D0
  221.         Macro
  222.         _SReadLong
  223.             moveq               #2,D0
  224.             dc.w                $A06E
  225.         EndM
  226.     ELSE
  227.         IMPORT_CFM_FUNCTION SReadLong
  228.     ENDIF
  229.  
  230. ;
  231. ; pascal OSErr SGetCString(SpBlockPtr spBlkPtr)
  232. ;
  233.     IF ¨ GENERATINGCFM THEN
  234.         ; parameters:
  235.         ;    spBlkPtr        => A0
  236.         ; returns:
  237.         ;    OSErr           <= D0
  238.         Macro
  239.         _SGetCString
  240.             moveq               #3,D0
  241.             dc.w                $A06E
  242.         EndM
  243.     ELSE
  244.         IMPORT_CFM_FUNCTION SGetCString
  245.     ENDIF
  246.  
  247. ;
  248. ; pascal OSErr SGetBlock(SpBlockPtr spBlkPtr)
  249. ;
  250.     IF ¨ GENERATINGCFM THEN
  251.         ; parameters:
  252.         ;    spBlkPtr        => A0
  253.         ; returns:
  254.         ;    OSErr           <= D0
  255.         Macro
  256.         _SGetBlock
  257.             moveq               #5,D0
  258.             dc.w                $A06E
  259.         EndM
  260.     ELSE
  261.         IMPORT_CFM_FUNCTION SGetBlock
  262.     ENDIF
  263.  
  264. ;
  265. ; pascal OSErr SFindStruct(SpBlockPtr spBlkPtr)
  266. ;
  267.     IF ¨ GENERATINGCFM THEN
  268.         ; parameters:
  269.         ;    spBlkPtr        => A0
  270.         ; returns:
  271.         ;    OSErr           <= D0
  272.         Macro
  273.         _SFindStruct
  274.             moveq               #6,D0
  275.             dc.w                $A06E
  276.         EndM
  277.     ELSE
  278.         IMPORT_CFM_FUNCTION SFindStruct
  279.     ENDIF
  280.  
  281. ;
  282. ; pascal OSErr SReadStruct(SpBlockPtr spBlkPtr)
  283. ;
  284.     IF ¨ GENERATINGCFM THEN
  285.         ; parameters:
  286.         ;    spBlkPtr        => A0
  287.         ; returns:
  288.         ;    OSErr           <= D0
  289.         Macro
  290.         _SReadStruct
  291.             moveq               #7,D0
  292.             dc.w                $A06E
  293.         EndM
  294.     ELSE
  295.         IMPORT_CFM_FUNCTION SReadStruct
  296.     ENDIF
  297.  
  298. ;   Special  
  299. ;
  300. ; pascal OSErr SReadInfo(SpBlockPtr spBlkPtr)
  301. ;
  302.     IF ¨ GENERATINGCFM THEN
  303.         ; parameters:
  304.         ;    spBlkPtr        => A0
  305.         ; returns:
  306.         ;    OSErr           <= D0
  307.         Macro
  308.         _SReadInfo
  309.             moveq               #16,D0
  310.             dc.w                $A06E
  311.         EndM
  312.     ELSE
  313.         IMPORT_CFM_FUNCTION SReadInfo
  314.     ENDIF
  315.  
  316. ;
  317. ; pascal OSErr SReadPRAMRec(SpBlockPtr spBlkPtr)
  318. ;
  319.     IF ¨ GENERATINGCFM THEN
  320.         ; parameters:
  321.         ;    spBlkPtr        => A0
  322.         ; returns:
  323.         ;    OSErr           <= D0
  324.         Macro
  325.         _SReadPRAMRec
  326.             moveq               #17,D0
  327.             dc.w                $A06E
  328.         EndM
  329.     ELSE
  330.         IMPORT_CFM_FUNCTION SReadPRAMRec
  331.     ENDIF
  332.  
  333. ;
  334. ; pascal OSErr SPutPRAMRec(SpBlockPtr spBlkPtr)
  335. ;
  336.     IF ¨ GENERATINGCFM THEN
  337.         ; parameters:
  338.         ;    spBlkPtr        => A0
  339.         ; returns:
  340.         ;    OSErr           <= D0
  341.         Macro
  342.         _SPutPRAMRec
  343.             moveq               #18,D0
  344.             dc.w                $A06E
  345.         EndM
  346.     ELSE
  347.         IMPORT_CFM_FUNCTION SPutPRAMRec
  348.     ENDIF
  349.  
  350. ;
  351. ; pascal OSErr SReadFHeader(SpBlockPtr spBlkPtr)
  352. ;
  353.     IF ¨ GENERATINGCFM THEN
  354.         ; parameters:
  355.         ;    spBlkPtr        => A0
  356.         ; returns:
  357.         ;    OSErr           <= D0
  358.         Macro
  359.         _SReadFHeader
  360.             moveq               #19,D0
  361.             dc.w                $A06E
  362.         EndM
  363.     ELSE
  364.         IMPORT_CFM_FUNCTION SReadFHeader
  365.     ENDIF
  366.  
  367. ;
  368. ; pascal OSErr SNextSRsrc(SpBlockPtr spBlkPtr)
  369. ;
  370.     IF ¨ GENERATINGCFM THEN
  371.         ; parameters:
  372.         ;    spBlkPtr        => A0
  373.         ; returns:
  374.         ;    OSErr           <= D0
  375.         Macro
  376.         _SNextSRsrc
  377.             moveq               #20,D0
  378.             dc.w                $A06E
  379.         EndM
  380.     ELSE
  381.         IMPORT_CFM_FUNCTION SNextSRsrc
  382.     ENDIF
  383.  
  384. ;
  385. ; pascal OSErr SNextTypeSRsrc(SpBlockPtr spBlkPtr)
  386. ;
  387.     IF ¨ GENERATINGCFM THEN
  388.         ; parameters:
  389.         ;    spBlkPtr        => A0
  390.         ; returns:
  391.         ;    OSErr           <= D0
  392.         Macro
  393.         _SNextTypeSRsrc
  394.             moveq               #21,D0
  395.             dc.w                $A06E
  396.         EndM
  397.     ELSE
  398.         IMPORT_CFM_FUNCTION SNextTypeSRsrc
  399.     ENDIF
  400.  
  401. ;
  402. ; pascal OSErr SRsrcInfo(SpBlockPtr spBlkPtr)
  403. ;
  404.     IF ¨ GENERATINGCFM THEN
  405.         ; parameters:
  406.         ;    spBlkPtr        => A0
  407.         ; returns:
  408.         ;    OSErr           <= D0
  409.         Macro
  410.         _SRsrcInfo
  411.             moveq               #22,D0
  412.             dc.w                $A06E
  413.         EndM
  414.     ELSE
  415.         IMPORT_CFM_FUNCTION SRsrcInfo
  416.     ENDIF
  417.  
  418. ;
  419. ; pascal OSErr SDisposePtr(SpBlockPtr spBlkPtr)
  420. ;
  421.     IF ¨ GENERATINGCFM THEN
  422.         ; parameters:
  423.         ;    spBlkPtr        => A0
  424.         ; returns:
  425.         ;    OSErr           <= D0
  426.         Macro
  427.         _SDisposePtr
  428.             moveq               #23,D0
  429.             dc.w                $A06E
  430.         EndM
  431.     ELSE
  432.         IMPORT_CFM_FUNCTION SDisposePtr
  433.     ENDIF
  434.  
  435. ;
  436. ; pascal OSErr SCkCardStat(SpBlockPtr spBlkPtr)
  437. ;
  438.     IF ¨ GENERATINGCFM THEN
  439.         ; parameters:
  440.         ;    spBlkPtr        => A0
  441.         ; returns:
  442.         ;    OSErr           <= D0
  443.         Macro
  444.         _SCkCardStat
  445.             moveq               #24,D0
  446.             dc.w                $A06E
  447.         EndM
  448.     ELSE
  449.         IMPORT_CFM_FUNCTION SCkCardStat
  450.     ENDIF
  451.  
  452. ;
  453. ; pascal OSErr SReadDrvrName(SpBlockPtr spBlkPtr)
  454. ;
  455.     IF ¨ GENERATINGCFM THEN
  456.         ; parameters:
  457.         ;    spBlkPtr        => A0
  458.         ; returns:
  459.         ;    OSErr           <= D0
  460.         Macro
  461.         _SReadDrvrName
  462.             moveq               #25,D0
  463.             dc.w                $A06E
  464.         EndM
  465.     ELSE
  466.         IMPORT_CFM_FUNCTION SReadDrvrName
  467.     ENDIF
  468.  
  469. ;
  470. ; pascal OSErr SFindSRTRec(SpBlockPtr spBlkPtr)
  471. ;
  472.     IF ¨ GENERATINGCFM THEN
  473.         ; parameters:
  474.         ;    spBlkPtr        => A0
  475.         ; returns:
  476.         ;    OSErr           <= D0
  477.         Macro
  478.         _SFindSRTRec
  479.             moveq               #26,D0
  480.             dc.w                $A06E
  481.         EndM
  482.     ELSE
  483.         IMPORT_CFM_FUNCTION SFindSRTRec
  484.     ENDIF
  485.  
  486. ;
  487. ; pascal OSErr SFindDevBase(SpBlockPtr spBlkPtr)
  488. ;
  489.     IF ¨ GENERATINGCFM THEN
  490.         ; parameters:
  491.         ;    spBlkPtr        => A0
  492.         ; returns:
  493.         ;    OSErr           <= D0
  494.         Macro
  495.         _SFindDevBase
  496.             moveq               #27,D0
  497.             dc.w                $A06E
  498.         EndM
  499.     ELSE
  500.         IMPORT_CFM_FUNCTION SFindDevBase
  501.     ENDIF
  502.  
  503. ;
  504. ; pascal OSErr SFindBigDevBase(SpBlockPtr spBlkPtr)
  505. ;
  506.     IF ¨ GENERATINGCFM THEN
  507.         ; parameters:
  508.         ;    spBlkPtr        => A0
  509.         ; returns:
  510.         ;    OSErr           <= D0
  511.         Macro
  512.         _SFindBigDevBase
  513.             moveq               #28,D0
  514.             dc.w                $A06E
  515.         EndM
  516.     ELSE
  517.         IMPORT_CFM_FUNCTION SFindBigDevBase
  518.     ENDIF
  519.  
  520. ;   Advanced  
  521. ;
  522. ; pascal OSErr InitSDeclMgr(SpBlockPtr spBlkPtr)
  523. ;
  524.     IF ¨ GENERATINGCFM THEN
  525.         ; parameters:
  526.         ;    spBlkPtr        => A0
  527.         ; returns:
  528.         ;    OSErr           <= D0
  529.         Macro
  530.         _InitSDeclMgr
  531.             moveq               #32,D0
  532.             dc.w                $A06E
  533.         EndM
  534.     ELSE
  535.         IMPORT_CFM_FUNCTION InitSDeclMgr
  536.     ENDIF
  537.  
  538. ;
  539. ; pascal OSErr SPrimaryInit(SpBlockPtr spBlkPtr)
  540. ;
  541.     IF ¨ GENERATINGCFM THEN
  542.         ; parameters:
  543.         ;    spBlkPtr        => A0
  544.         ; returns:
  545.         ;    OSErr           <= D0
  546.         Macro
  547.         _SPrimaryInit
  548.             moveq               #33,D0
  549.             dc.w                $A06E
  550.         EndM
  551.     ELSE
  552.         IMPORT_CFM_FUNCTION SPrimaryInit
  553.     ENDIF
  554.  
  555. ;
  556. ; pascal OSErr SCardChanged(SpBlockPtr spBlkPtr)
  557. ;
  558.     IF ¨ GENERATINGCFM THEN
  559.         ; parameters:
  560.         ;    spBlkPtr        => A0
  561.         ; returns:
  562.         ;    OSErr           <= D0
  563.         Macro
  564.         _SCardChanged
  565.             moveq               #34,D0
  566.             dc.w                $A06E
  567.         EndM
  568.     ELSE
  569.         IMPORT_CFM_FUNCTION SCardChanged
  570.     ENDIF
  571.  
  572. ;
  573. ; pascal OSErr SExec(SpBlockPtr spBlkPtr)
  574. ;
  575.     IF ¨ GENERATINGCFM THEN
  576.         ; parameters:
  577.         ;    spBlkPtr        => A0
  578.         ; returns:
  579.         ;    OSErr           <= D0
  580.         Macro
  581.         _SExec
  582.             moveq               #35,D0
  583.             dc.w                $A06E
  584.         EndM
  585.     ELSE
  586.         IMPORT_CFM_FUNCTION SExec
  587.     ENDIF
  588.  
  589. ;
  590. ; pascal OSErr SOffsetData(SpBlockPtr spBlkPtr)
  591. ;
  592.     IF ¨ GENERATINGCFM THEN
  593.         ; parameters:
  594.         ;    spBlkPtr        => A0
  595.         ; returns:
  596.         ;    OSErr           <= D0
  597.         Macro
  598.         _SOffsetData
  599.             moveq               #36,D0
  600.             dc.w                $A06E
  601.         EndM
  602.     ELSE
  603.         IMPORT_CFM_FUNCTION SOffsetData
  604.     ENDIF
  605.  
  606. ;
  607. ; pascal OSErr SInitPRAMRecs(SpBlockPtr spBlkPtr)
  608. ;
  609.     IF ¨ GENERATINGCFM THEN
  610.         ; parameters:
  611.         ;    spBlkPtr        => A0
  612.         ; returns:
  613.         ;    OSErr           <= D0
  614.         Macro
  615.         _SInitPRAMRecs
  616.             moveq               #37,D0
  617.             dc.w                $A06E
  618.         EndM
  619.     ELSE
  620.         IMPORT_CFM_FUNCTION SInitPRAMRecs
  621.     ENDIF
  622.  
  623. ;
  624. ; pascal OSErr SReadPBSize(SpBlockPtr spBlkPtr)
  625. ;
  626.     IF ¨ GENERATINGCFM THEN
  627.         ; parameters:
  628.         ;    spBlkPtr        => A0
  629.         ; returns:
  630.         ;    OSErr           <= D0
  631.         Macro
  632.         _SReadPBSize
  633.             moveq               #38,D0
  634.             dc.w                $A06E
  635.         EndM
  636.     ELSE
  637.         IMPORT_CFM_FUNCTION SReadPBSize
  638.     ENDIF
  639.  
  640. ;
  641. ; pascal OSErr SCalcStep(SpBlockPtr spBlkPtr)
  642. ;
  643.     IF ¨ GENERATINGCFM THEN
  644.         ; parameters:
  645.         ;    spBlkPtr        => A0
  646.         ; returns:
  647.         ;    OSErr           <= D0
  648.         Macro
  649.         _SCalcStep
  650.             moveq               #40,D0
  651.             dc.w                $A06E
  652.         EndM
  653.     ELSE
  654.         IMPORT_CFM_FUNCTION SCalcStep
  655.     ENDIF
  656.  
  657. ;
  658. ; pascal OSErr SInitSRsrcTable(SpBlockPtr spBlkPtr)
  659. ;
  660.     IF ¨ GENERATINGCFM THEN
  661.         ; parameters:
  662.         ;    spBlkPtr        => A0
  663.         ; returns:
  664.         ;    OSErr           <= D0
  665.         Macro
  666.         _SInitSRsrcTable
  667.             moveq               #41,D0
  668.             dc.w                $A06E
  669.         EndM
  670.     ELSE
  671.         IMPORT_CFM_FUNCTION SInitSRsrcTable
  672.     ENDIF
  673.  
  674. ;
  675. ; pascal OSErr SSearchSRT(SpBlockPtr spBlkPtr)
  676. ;
  677.     IF ¨ GENERATINGCFM THEN
  678.         ; parameters:
  679.         ;    spBlkPtr        => A0
  680.         ; returns:
  681.         ;    OSErr           <= D0
  682.         Macro
  683.         _SSearchSRT
  684.             moveq               #42,D0
  685.             dc.w                $A06E
  686.         EndM
  687.     ELSE
  688.         IMPORT_CFM_FUNCTION SSearchSRT
  689.     ENDIF
  690.  
  691. ;
  692. ; pascal OSErr SUpdateSRT(SpBlockPtr spBlkPtr)
  693. ;
  694.     IF ¨ GENERATINGCFM THEN
  695.         ; parameters:
  696.         ;    spBlkPtr        => A0
  697.         ; returns:
  698.         ;    OSErr           <= D0
  699.         Macro
  700.         _SUpdateSRT
  701.             moveq               #43,D0
  702.             dc.w                $A06E
  703.         EndM
  704.     ELSE
  705.         IMPORT_CFM_FUNCTION SUpdateSRT
  706.     ENDIF
  707.  
  708. ;
  709. ; pascal OSErr SCalcSPointer(SpBlockPtr spBlkPtr)
  710. ;
  711.     IF ¨ GENERATINGCFM THEN
  712.         ; parameters:
  713.         ;    spBlkPtr        => A0
  714.         ; returns:
  715.         ;    OSErr           <= D0
  716.         Macro
  717.         _SCalcSPointer
  718.             moveq               #44,D0
  719.             dc.w                $A06E
  720.         EndM
  721.     ELSE
  722.         IMPORT_CFM_FUNCTION SCalcSPointer
  723.     ENDIF
  724.  
  725. ;
  726. ; pascal OSErr SGetDriver(SpBlockPtr spBlkPtr)
  727. ;
  728.     IF ¨ GENERATINGCFM THEN
  729.         ; parameters:
  730.         ;    spBlkPtr        => A0
  731.         ; returns:
  732.         ;    OSErr           <= D0
  733.         Macro
  734.         _SGetDriver
  735.             moveq               #45,D0
  736.             dc.w                $A06E
  737.         EndM
  738.     ELSE
  739.         IMPORT_CFM_FUNCTION SGetDriver
  740.     ENDIF
  741.  
  742. ;
  743. ; pascal OSErr SPtrToSlot(SpBlockPtr spBlkPtr)
  744. ;
  745.     IF ¨ GENERATINGCFM THEN
  746.         ; parameters:
  747.         ;    spBlkPtr        => A0
  748.         ; returns:
  749.         ;    OSErr           <= D0
  750.         Macro
  751.         _SPtrToSlot
  752.             moveq               #46,D0
  753.             dc.w                $A06E
  754.         EndM
  755.     ELSE
  756.         IMPORT_CFM_FUNCTION SPtrToSlot
  757.     ENDIF
  758.  
  759. ;
  760. ; pascal OSErr SFindSInfoRecPtr(SpBlockPtr spBlkPtr)
  761. ;
  762.     IF ¨ GENERATINGCFM THEN
  763.         ; parameters:
  764.         ;    spBlkPtr        => A0
  765.         ; returns:
  766.         ;    OSErr           <= D0
  767.         Macro
  768.         _SFindSInfoRecPtr
  769.             moveq               #47,D0
  770.             dc.w                $A06E
  771.         EndM
  772.     ELSE
  773.         IMPORT_CFM_FUNCTION SFindSInfoRecPtr
  774.     ENDIF
  775.  
  776. ;
  777. ; pascal OSErr SFindSRsrcPtr(SpBlockPtr spBlkPtr)
  778. ;
  779.     IF ¨ GENERATINGCFM THEN
  780.         ; parameters:
  781.         ;    spBlkPtr        => A0
  782.         ; returns:
  783.         ;    OSErr           <= D0
  784.         Macro
  785.         _SFindSRsrcPtr
  786.             moveq               #48,D0
  787.             dc.w                $A06E
  788.         EndM
  789.     ELSE
  790.         IMPORT_CFM_FUNCTION SFindSRsrcPtr
  791.     ENDIF
  792.  
  793. ;
  794. ; pascal OSErr SDeleteSRTRec(SpBlockPtr spBlkPtr)
  795. ;
  796.     IF ¨ GENERATINGCFM THEN
  797.         ; parameters:
  798.         ;    spBlkPtr        => A0
  799.         ; returns:
  800.         ;    OSErr           <= D0
  801.         Macro
  802.         _SDeleteSRTRec
  803.             moveq               #49,D0
  804.             dc.w                $A06E
  805.         EndM
  806.     ELSE
  807.         IMPORT_CFM_FUNCTION SDeleteSRTRec
  808.     ENDIF
  809.  
  810. ;
  811. ; pascal OSErr SSecondaryInit(SpBlockPtr spBlkPtr)
  812. ;
  813.     IF ¨ GENERATINGCFM THEN
  814.         ; parameters:
  815.         ;    spBlkPtr        => A0
  816.         ; returns:
  817.         ;    OSErr           <= D0
  818.         Macro
  819.         _SSecondaryInit
  820.             moveq               #50,D0
  821.             dc.w                $A06E
  822.         EndM
  823.     ELSE
  824.         IMPORT_CFM_FUNCTION SSecondaryInit
  825.     ENDIF
  826.  
  827. ;
  828. ; pascal OSErr SInitSlotPRAM(SpBlockPtr spBlkPtr)
  829. ;
  830.     IF ¨ GENERATINGCFM THEN
  831.         ; parameters:
  832.         ;    spBlkPtr        => A0
  833.         ; returns:
  834.         ;    OSErr           <= D0
  835.         Macro
  836.         _SInitSlotPRAM
  837.             moveq               #51,D0
  838.             dc.w                $A06E
  839.         EndM
  840.     ELSE
  841.         IMPORT_CFM_FUNCTION SInitSlotPRAM
  842.     ENDIF
  843.  
  844. ;
  845. ; pascal OSErr OpenSlot(ParmBlkPtr paramBlock, Boolean async)
  846. ;
  847.     IF GENERATINGCFM THEN
  848.         IMPORT_CFM_FUNCTION OpenSlot
  849.     ENDIF
  850.  
  851. ;
  852. ; pascal OSErr OpenSlotSync(ParmBlkPtr paramBlock)
  853. ;
  854.     IF ¨ GENERATINGCFM THEN
  855.         ; parameters:
  856.         ;    paramBlock      => A0
  857.         ; returns:
  858.         ;    OSErr           <= D0
  859.         _OpenSlotSync:    OPWORD    $A200
  860.     ELSE
  861.         IMPORT_CFM_FUNCTION OpenSlotSync
  862.     ENDIF
  863.  
  864. ;
  865. ; pascal OSErr OpenSlotAsync(ParmBlkPtr paramBlock)
  866. ;
  867.     IF ¨ GENERATINGCFM THEN
  868.         ; parameters:
  869.         ;    paramBlock      => A0
  870.         ; returns:
  871.         ;    OSErr           <= D0
  872.         _OpenSlotAsync:    OPWORD    $A600
  873.     ELSE
  874.         IMPORT_CFM_FUNCTION OpenSlotAsync
  875.     ENDIF
  876.  
  877. ;   Device Manager Slot Support  
  878. ;
  879. ; pascal OSErr SIntInstall(SQElemPtr sIntQElemPtr, short theSlot)
  880. ;
  881.     IF ¨ GENERATINGCFM THEN
  882.         ; parameters:
  883.         ;    sIntQElemPtrtheSlot=> A0
  884.         ;    theSlot         => D0
  885.         ; returns:
  886.         ;    OSErr           <= D0
  887.         _SIntInstall:    OPWORD    $A075
  888.     ELSE
  889.         IMPORT_CFM_FUNCTION SIntInstall
  890.     ENDIF
  891.  
  892. ;
  893. ; pascal OSErr SIntRemove(SQElemPtr sIntQElemPtr, short theSlot)
  894. ;
  895.     IF ¨ GENERATINGCFM THEN
  896.         ; parameters:
  897.         ;    sIntQElemPtrtheSlot=> A0
  898.         ;    theSlot         => D0
  899.         ; returns:
  900.         ;    OSErr           <= D0
  901.         _SIntRemove:    OPWORD    $A076
  902.     ELSE
  903.         IMPORT_CFM_FUNCTION SIntRemove
  904.     ENDIF
  905.  
  906. ;
  907. ; pascal OSErr SVersion(SpBlockPtr spBlkPtr)
  908. ;
  909.     IF ¨ GENERATINGCFM THEN
  910.         ; parameters:
  911.         ;    spBlkPtr        => A0
  912.         ; returns:
  913.         ;    OSErr           <= D0
  914.         Macro
  915.         _SVersion
  916.             moveq               #8,D0
  917.             dc.w                $A06E
  918.         EndM
  919.     ELSE
  920.         IMPORT_CFM_FUNCTION SVersion
  921.     ENDIF
  922.  
  923. ;
  924. ; pascal OSErr SetSRsrcState(SpBlockPtr spBlkPtr)
  925. ;
  926.     IF ¨ GENERATINGCFM THEN
  927.         ; parameters:
  928.         ;    spBlkPtr        => A0
  929.         ; returns:
  930.         ;    OSErr           <= D0
  931.         Macro
  932.         _SetSRsrcState
  933.             moveq               #9,D0
  934.             dc.w                $A06E
  935.         EndM
  936.     ELSE
  937.         IMPORT_CFM_FUNCTION SetSRsrcState
  938.     ENDIF
  939.  
  940. ;
  941. ; pascal OSErr InsertSRTRec(SpBlockPtr spBlkPtr)
  942. ;
  943.     IF ¨ GENERATINGCFM THEN
  944.         ; parameters:
  945.         ;    spBlkPtr        => A0
  946.         ; returns:
  947.         ;    OSErr           <= D0
  948.         Macro
  949.         _InsertSRTRec
  950.             moveq               #10,D0
  951.             dc.w                $A06E
  952.         EndM
  953.     ELSE
  954.         IMPORT_CFM_FUNCTION InsertSRTRec
  955.     ENDIF
  956.  
  957. ;
  958. ; pascal OSErr SGetSRsrc(SpBlockPtr spBlkPtr)
  959. ;
  960.     IF ¨ GENERATINGCFM THEN
  961.         ; parameters:
  962.         ;    spBlkPtr        => A0
  963.         ; returns:
  964.         ;    OSErr           <= D0
  965.         Macro
  966.         _SGetSRsrc
  967.             moveq               #11,D0
  968.             dc.w                $A06E
  969.         EndM
  970.     ELSE
  971.         IMPORT_CFM_FUNCTION SGetSRsrc
  972.     ENDIF
  973.  
  974. ;
  975. ; pascal OSErr SGetTypeSRsrc(SpBlockPtr spBlkPtr)
  976. ;
  977.     IF ¨ GENERATINGCFM THEN
  978.         ; parameters:
  979.         ;    spBlkPtr        => A0
  980.         ; returns:
  981.         ;    OSErr           <= D0
  982.         Macro
  983.         _SGetTypeSRsrc
  984.             moveq               #12,D0
  985.             dc.w                $A06E
  986.         EndM
  987.     ELSE
  988.         IMPORT_CFM_FUNCTION SGetTypeSRsrc
  989.     ENDIF
  990.  
  991. ;
  992. ; pascal OSErr SGetSRsrcPtr(SpBlockPtr spBlkPtr)
  993. ;
  994.     IF ¨ GENERATINGCFM THEN
  995.         ; parameters:
  996.         ;    spBlkPtr        => A0
  997.         ; returns:
  998.         ;    OSErr           <= D0
  999.         Macro
  1000.         _SGetSRsrcPtr
  1001.             moveq               #29,D0
  1002.             dc.w                $A06E
  1003.         EndM
  1004.     ELSE
  1005.         IMPORT_CFM_FUNCTION SGetSRsrcPtr
  1006.     ENDIF
  1007.  
  1008.     ENDIF
  1009.     ENDIF ; __SLOTS__ 
  1010.  
  1011.